1. Technical Field
The present invention relates in general to data processing and in particular to collaborative data processing environments. Still more particularly, the present invention relates to systems and methods for customizing the quality of service (hereinafter xe2x80x9cQoSxe2x80x9d) provided to clients within a collaborative data processing environment.
2. Description of the Related Art
Collaborative data processing environments typically utilize a client/server architecture, in which one or more data processing systems operate as servers, providing resources to one or more other data processing systems operating as clients. One of the major advantages provided by this network architecture is that it allows clients that lack certain resources to obtain those resources from the servers. The Internet, for instance, is a client/server network, having a large number of Web servers that provide resources such as Web pages to clients (i.e., data processing systems running client software) in response to requests from those clients.
Currently, businesses and other organizations commonly make information and/or services (such as retail sales) available to the public via Web servers. A Web server is a data processing system that is connected to a network such as the Internet and that provides information and services to other data processing systems upon request. A disadvantage associated with the client/server paradigm, however, is that a server can only provide services to a limited number of concurrent requests before the performance of the server suffers significant degradation.
A number of strategies have been proposed to address the problem of server overload, including strategies which recognize the fact that organizations frequently do not maintain their own Web servers but instead purchase or receive free hosting services from a Web content hosting provider (hereinafter a xe2x80x9chostxe2x80x9d). For instance, one such strategy replaces the server""s conventional sequential request dispatcher (which causes requests to be processed in order of receipt) with a dispatcher that prioritizes requests based on whether the requests involve access to resources of a paying customer of the host or a customer that is receiving complimentary hosting services. Server-centric strategies such as this (i.e., strategies that prioritize based on characteristics of the resource being served) certainly provide benefits, in that they allow hosts to customize the QoS provided on a per-resource basis. However, such strategies do not enable servers to customize the QoS provided on a per-client basis (i.e., based on characteristics of the client making the request).
The present invention recognizes that organizations often consider requests from some clients to be more important than requests from others, even when those requests involve the same resource. For example, if an airline that sells tickets over the Internet was to receive two requests for rate information, one from a person with no prior involvement with the company and one from a customer with a history of purchasing first-class tickets, the airline might well prefer to process the latter request before the former.
However, Web servers and clients commonly utilize the Hypertext Transfer Protocol (HTTP), and that protocol is non-persistent (or stateless). That is, HTTP does not inherently provide a context that identifies consecutive requests from a particular client as related. Instead, Web servers open a new connection for each request, even if the requests pertain to items of content (such as text and images) to be displayed within a single Web page.
Another protocol utilized by some Web servers and clients, persistent HTTP (P-HTTP), maintains enough state information to allow clients and servers to utilize a single connection for a number of related requests (such as all of the requests pertaining to a single Web page). However, P-HTTP allows servers and clients to close connections unilaterally, in which case a number of related requests might require multiple connections, even though P-HTTP is being utilized. Furthermore, as with HTTP, P-HTTP does not maintain state across separate sessions of interaction. As utilized herein, xe2x80x9csession of interactionxe2x80x9d means a set of requests from a client involving a set of related server resources (such as Web pages from a particular Web site) and the corresponding responses. The session starts when the client transmits an initial request involving the related resources. The session ends, for example, when the client begins communicating with a different Web site or when the client terminates the Web browser. As suggested above, even under P-HTTP, one session may involve multiple connections.
Since communication protocols such as HTTP and P-HTTP do not preserve state information from one session for use in the next, additional difficulty is associated with providing client-centric priority in networks which utilize such protocols, in comparison to networks with stateful protocols (e.g., protocols that keep state information identifying particular clients even after requests from those clients have been serviced). However, HTTP does provide servers with the option of storing data records (xe2x80x9ccookiesxe2x80x9d) on clients, such that the stored data will be returned to the servers automatically within subsequent requests from those clients. The Microsoft Press Computer Dictionary, Third Edition, defines xe2x80x9ccookiexe2x80x9d as follows:
a block of data that a Web server stores on a client system. When a user returns to the same Web site, the browser sends a copy of the cookie back to the server. Cookies are used to identify users, to instruct the server to send a customized version of the requested Web page, to submit account information for the user, and for other administrative purposes (def. 2).
Accordingly, by utilizing cookies, a Web server can create a context within which the server can recognize a request from a client as related to previous requests from the same client.
As recognized by the definition quoted above, cookies are currently utilized to influence the content provided to a client by a Web server. By contrast, the present invention utilizes context-creating facilities, such as cookies, to influence the quality of services provided to a client, such that requests from favored clients are given preferential treatment, relative to requests from less important or unknown clients.
To address the shortcomings of conventional techniques for processing network requests, the present invention provides a method, system, and program product in which a priority value is transmitted to a first client in response to a first request from the first client. A second request from the first client which includes that priority value and a third request from a second client are then received by the server. Thereafter, the server provides the second request with preferential treatment, relative to the third request, based on the priority value of the second request. In a preferred embodiment, the priority value is transmitted to the first client within an HTTP cookie.
All objects, features, and advantages of the present invention will become apparent in the following detailed written description.